package nsu.edu.zsq.bean;

import java.util.Date;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * Description: 学生的奖惩信息表
 */
public class StuReward {
    /**
     *  id
     */
    private Integer id;

    /**
     * 学生的学号 stu_no
     */
    @NotNull
    private String stuNo;

    /**
     * 学生的姓名 stu_name
     */
    private String stuName;

    /**
     * 奖惩时间 time
     */
    @JsonFormat(pattern="yyyy-MM-dd", timezone="GMT+8")
    // 入参时格式转换
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date time;

    /**
     * 奖惩类型 type
     */
    @Pattern(regexp="^[\\S]{1,20}$", message="奖惩类型1-20个字符，且不能出现空格")
    private String type;

    /**
     * 奖惩原因 reason
     */
    @Length(min=1, max=100, message="奖惩原因1-100个字符")
    private String reason;

    /**
     * 是否删除，0：否；1：是 is_delete
     */
    private Integer isDelete;

    /**
     * 操作者 operator
     */
    private String operator;

    /**
     * 操作时间 operator_time
     */
    private Date operatorTime;

    /**
     * Get 
     * @return id 
     */
    public Integer getId() {
        return id;
    }

    /**
     * Set 
     * @param id 
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * Get 学生的学号
     * @return stu_no 学生的学号
     */
    public String getStuNo() {
        return stuNo;
    }

    /**
     * Set 学生的学号
     * @param stuNo 学生的学号
     */
    public void setStuNo(String stuNo) {
        this.stuNo = stuNo == null ? null : stuNo.trim();
    }

    /**
     * Get 学生的姓名
     * @return stu_name 学生的姓名
     */
    public String getStuName() {
        return stuName;
    }

    /**
     * Set 学生的姓名
     * @param stuName 学生的姓名
     */
    public void setStuName(String stuName) {
        this.stuName = stuName == null ? null : stuName.trim();
    }

    /**
     * Get 奖惩时间
     * @return time 奖惩时间
     */
    public Date getTime() {
        return time;
    }

    /**
     * Set 奖惩时间
     * @param time 奖惩时间
     */
    public void setTime(Date time) {
        this.time = time;
    }

    /**
     * Get 奖惩类型
     * @return type 奖惩类型
     */
    public String getType() {
        return type;
    }

    /**
     * Set 奖惩类型
     * @param type 奖惩类型
     */
    public void setType(String type) {
        this.type = type == null ? null : type.trim();
    }

    /**
     * Get 奖惩原因
     * @return reason 奖惩原因
     */
    public String getReason() {
        return reason;
    }

    /**
     * Set 奖惩原因
     * @param reason 奖惩原因
     */
    public void setReason(String reason) {
        this.reason = reason == null ? null : reason.trim();
    }

    /**
     * Get 是否删除，0：否；1：是
     * @return is_delete 是否删除，0：否；1：是
     */
    public Integer getIsDelete() {
        return isDelete;
    }

    /**
     * Set 是否删除，0：否；1：是
     * @param isDelete 是否删除，0：否；1：是
     */
    public void setIsDelete(Integer isDelete) {
        this.isDelete = isDelete;
    }

    /**
     * Get 操作者
     * @return operator 操作者
     */
    public String getOperator() {
        return operator;
    }

    /**
     * Set 操作者
     * @param operator 操作者
     */
    public void setOperator(String operator) {
        this.operator = operator == null ? null : operator.trim();
    }

    /**
     * Get 操作时间
     * @return operator_time 操作时间
     */
    public Date getOperatorTime() {
        return operatorTime;
    }

    /**
     * Set 操作时间
     * @param operatorTime 操作时间
     */
    public void setOperatorTime(Date operatorTime) {
        this.operatorTime = operatorTime;
    }
}